home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / PIL / ImageDraw2.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  5KB  |  127 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import Image
  5. import ImageColor
  6. import ImageDraw
  7. import ImageFont
  8. import ImagePath
  9.  
  10. class Pen:
  11.     
  12.     def __init__(self, color, width = 1, opacity = 255):
  13.         self.color = ImageColor.getrgb(color)
  14.         self.width = width
  15.  
  16.  
  17.  
  18. class Brush:
  19.     
  20.     def __init__(self, color, opacity = 255):
  21.         self.color = ImageColor.getrgb(color)
  22.  
  23.  
  24.  
  25. class Font:
  26.     
  27.     def __init__(self, color, file, size = 12):
  28.         self.color = ImageColor.getrgb(color)
  29.         self.font = ImageFont.truetype(file, size)
  30.  
  31.  
  32.  
  33. class Draw:
  34.     
  35.     def __init__(self, image, size = None, color = None):
  36.         if not hasattr(image, 'im'):
  37.             image = Image.new(image, size, color)
  38.         
  39.         self.draw = ImageDraw.Draw(image)
  40.         self.image = image
  41.         self.transform = None
  42.  
  43.     
  44.     def flush(self):
  45.         return self.image
  46.  
  47.     
  48.     def render(self, op, xy, pen, brush = None):
  49.         outline = None
  50.         fill = None
  51.         width = 1
  52.         if isinstance(pen, Pen):
  53.             outline = pen.color
  54.             width = pen.width
  55.         elif isinstance(brush, Pen):
  56.             outline = brush.color
  57.             width = brush.width
  58.         
  59.         if isinstance(brush, Brush):
  60.             fill = brush.color
  61.         elif isinstance(pen, Brush):
  62.             fill = pen.color
  63.         
  64.         if self.transform:
  65.             xy = ImagePath.Path(xy)
  66.             xy.transform(self.transform)
  67.         
  68.         if op == 'line':
  69.             self.draw.line(xy, fill = outline, width = width)
  70.         else:
  71.             getattr(self.draw, op)(xy, fill = fill, outline = outline)
  72.  
  73.     
  74.     def settransform(self, .1):
  75.         (xoffset, yoffset) = .1
  76.         self.transform = (1, 0, xoffset, 0, 1, yoffset)
  77.  
  78.     
  79.     def arc(self, xy, start, end, *options):
  80.         self.render('arc', xy, start, end, *options)
  81.  
  82.     
  83.     def chord(self, xy, start, end, *options):
  84.         self.render('chord', xy, start, end, *options)
  85.  
  86.     
  87.     def ellipse(self, xy, *options):
  88.         self.render('ellipse', xy, *options)
  89.  
  90.     
  91.     def pieslice(self, xy, start, end, *options):
  92.         self.render('pieslice', xy, start, end, *options)
  93.  
  94.     
  95.     def line(self, xy, *options):
  96.         self.render('line', xy, *options)
  97.  
  98.     
  99.     def rectangle(self, xy, *options):
  100.         self.render('rectangle', xy, *options)
  101.  
  102.     
  103.     def ellipse(self, xy, *options):
  104.         self.render('ellipse', xy, *options)
  105.  
  106.     
  107.     def polygon(self, xy, *options):
  108.         self.render('polygon', xy, *options)
  109.  
  110.     
  111.     def symbol(self, xy, symbol, *options):
  112.         raise NotImplementedError('not in this version')
  113.  
  114.     
  115.     def text(self, xy, text, font):
  116.         if self.transform:
  117.             xy = ImagePath.Path(xy)
  118.             xy.transform(self.transform)
  119.         
  120.         self.draw.text(xy, text, font = font.font, fill = font.color)
  121.  
  122.     
  123.     def textsize(self, text, font):
  124.         return self.draw.textsize(text, font = font.font)
  125.  
  126.  
  127.